﻿/*
 * KLF Headless Browser
 * Written by Kris Oye <kristianoye@gmail.com>
 * Copyright (C) 2011-2012.  All rights reserved.
 */
namespace KLF.Lib.Browser.DOM.CSS.SAC.Conditions
{
    #region Using Statements

    using KLF.Lib.Browser.DOM.HTML;

    #endregion

    public enum ConditionType
    {
        AndCondition = 1,
        OrCondition = 2,
        NegativeCondition = 3,
        PositionalCondition = 4,
        AttributeCondition = 5,
        IdCondition = 6,
        LangCondition = 7,
        OneOfAttributeCondition = 8,
        BeginHyphenAttributeCondition = 9,
        ClassCondition = 10,
        PsueodoClassCondition = 11,
        OnlyChildCondition = 12,
        OnlyTypeCondition = 13,
        ContentCondition = 14
    }

    /// <summary>
    /// The type of condition
    /// </summary>
    public abstract class Condition
    {
        public abstract ConditionType Type { get; }

        public virtual bool MatchElement(HTMLElement e) { return false; }
    }
}
